/* -----------------------------------------------------------------------------
*  CVectorString
*  Author: Antonio Javier Gallego Sánchez (ajgallego AT gmail DOT com)
*  License: GNU Public License
* ----------------------------------------------------------------------------*/

#ifndef CVECTORSTRING_HPP_
#define CVECTORSTRING_HPP_

class CVectorString
{
    public:
        CVectorString();
        CVectorString( unsigned int size );
        CVectorString( unsigned int size, const char *str );
        ~CVectorString();

        unsigned long size() const;
        bool empty() const;
        bool equal( const CVectorString *vector ) const;
        bool isInVector( const char* str ) const;

        void print( char separator ) const;

        void resize( unsigned long newsize );

        const char* get( unsigned long id ) const;
        const char* front() const;
        const char* back() const;

        void push_back( const char* str );
        void pop_back();

        void append( const CVectorString *vector );
        void appendWithoutDuplicates( const CVectorString *vector );

    private:
        struct prv_vectorString_t *m_data;
};

#endif